package leecode

func numSquares(n int) int {
	dp := make([]int, n+1) //dp表示 整数i需要几个完全平方数表示
	dp[0] = 0
	for i := 2; i <= n; i++ {
		dp[i] = i
		//求该数完全平方数的最小值
		for j := 1; j*j <= i; j++ {
			dp[i] = min(dp[i], dp[i-j*j]+1)
		}
	}
	return dp[n]
}
